<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title></title>
</head>
<body>
    <script type="text/javascript">
    	/*
    		promise三种状态: pending 进行中 fulfilled 已成功 rejected 已失败
			语法: const p = new Promise(function(resolve, reject){
				resolve: 将promise对象的状态 从 进行中修改到 已完成， 并将成功的结果返回出去 
				reject: 将promise对象的状态 从 进行中修改到 已失败， 并将失败的结果返回出去 

			})
			一旦状态被修改（pending => fulfilled/rejected),不会再改变

    	*/
    	const p = new Promise(function(resolve, reject){
    		if(Math.random() < 0){
    			resolve("成功了！！")
    		}else{
    			reject("失败了")
    		}
    	}) 
    	console.log(p)
    	// 箭头函数  一般是用来替代匿名函数
    	// const fn = (a,b) => {
    	// 	console.log(a,b)
    	// }

    	// setTimeout(() => {

    	// })

    	// .then(成功状态的回调， 失败状态的回调) 两个参数
    	// .catch()一个参数  接收失败的结果
    	// .finally() 不管成功还是失败 都会执行
    	// p.then((res) => {
    	// 	console.log(res)
    	// }, (err) => {
    	// 	console.log(err)
    	// })

    	p.then((res) => {
    		console.log(res)
    	})
    	.catch((err) => {
    		
    		console.log(err)
    	})
    	.finally(() => {
    		console.log("执行完毕")
    	})
    	// =======================================改造表白
   
		// 	var p = new Promise(function(resolve, reject){


		// 	// 发送表白
		// 	console.log(`${name}: 最近在输液，你猜是什么液？想你的夜`);

		// 	// 假装回复
		// 	setTimeout(() => {
		// 		Math.random() < 0.2
		// 			// 同意
		// 			resolve("饼饼,我好喜欢你,像你妈打你,不讲道理")
		// 			// 拒绝
		// 			reject("我拿你当哥哥")
				

		// 	}, 1000)
		// });
		// 	console.log(p)
			// =============================================
			function send(name) {
				const pr = new Promise((resolve, reject) => {
					// 发送表白
			console.log(`${name}: 最近在输液，你猜是什么液？想你的夜`)

			// 假装回复
			setTimeout(function(){
				if (Math.random() < 0.01) {
					// 同意
					resolve("饼饼,我好喜欢你,像你妈打你,不讲道理")
				}else{
					// 拒绝
					reject("我拿你当哥哥")
						}
					}, 1000)
				})
				return pr
			}

			// let pp = send("刘志强") //pp = pr
			send("刘志强")
			.then((err) => {
				console.log(err)
				return send("小红")
			})
			.catch((err) => {
				console.log(err)
				return send("小明")
			})
			.catch((err) => {
				console.log("小贾")
				return send("小丽")
			})
			.then((res) => {
				console.log(res)
			}, (err) => {
				console.log(err)
				console.log("全场灭灯")
			})
    </script>
</body>
</html>